// call
Function.prototype.apply2=function(context,args){
    context=context||window
   console.log(args);
   
    const fn = Symbol('fn'); // 使用 Symbol 防止命名与对象里的方法冲突  
    context[fn] = this;  
    let result = context[fn](...args);  
    delete context[fn]
    return result
}

const obj={
    name:'杰哥',
    age:42
}
function a(b,c,d){
    console.log(this.name);
    console.log(b,c,d);
}
a.apply2(obj,[3,45,6])